home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / AEA / Source / Includes / AEAAccessor.hh < prev    next >
Encoding:
Text File  |  2000-06-24  |  1.1 KB  |  39 lines

  1. /*    ==============
  2.  *    AEAAccessor.hh
  3.  *    ==============
  4.  */
  5.  
  6. #pragma once
  7.  
  8. #include <AppleEvents.h>
  9. #include <AEObjects.h>
  10. #include <Errors.h>
  11.  
  12. typedef pascal OSErr (AEAObjectAccessorFunc)
  13.     (DescType , const AEDesc *, DescType , DescType , const AEDesc *, AEDesc *, long );
  14. typedef AEAObjectAccessorFunc *AEAObjectAccessorFuncPtr;
  15.  
  16. class AEAAccessor {
  17. // Member functions
  18. public:
  19.     AEAAccessor(DescType inDesiredClass, DescType inContainerType);
  20.     virtual ~AEAAccessor();
  21.     
  22.     virtual void AccessObject(DescType inDesiredClass, 
  23.         const AEDesc *inContainerToken, DescType inContainerClass, 
  24.         DescType inKeyForm, const AEDesc *inKeyData, AEDesc *outToken) const;
  25. protected:
  26.     virtual AEAObjectAccessorFuncPtr AccessorFunc();
  27.     static pascal OSErr GenericObjectAccessor(
  28.         DescType inDesiredClass, const AEDesc *inContainerToken, DescType inContainerClass, 
  29.         DescType inKeyForm, const AEDesc *inKeyData, AEDesc *outToken, long inRefCon);
  30.     static OSLAccessorUPP sOSLAccessorUPP;
  31.     virtual void Install();
  32.     virtual void Remove();
  33. // Data members
  34. protected:
  35.     DescType mDesiredClass;
  36.     DescType mContainerType;
  37.     AEAObjectAccessorFuncPtr mAccessorFunc;
  38. };
  39.